package de.koller.oceanFramework.math;

import java.awt.geom.Point2D;

/**
 * 
 * @author Fabian Koller
 */
public interface ROVec {

	/**
	 * 
	 * @param vec
	 * @return
	 */
	double distance( ROVec vec );
	/**
	 * 
	 * @param x
	 * @param y
	 * @return
	 */
	double distance( double x, double y );
	/**
	 * 
	 * @return
	 */
	double getDirection();
	/**
	 * 
	 * @param other
	 * @return
	 */
	double getDirection( ROVec other );
	/**
	 * 
	 * @return
	 */
	double getLength();
	/**
	 * 
	 * @return
	 */
	Point2D getPoint2D();
	/**
	 * 
	 * @param z
	 * @return
	 */
	ROVec3 getVec3( double z );
	/**
	 * 
	 * @return
	 */
	ROVec3 getVec3();
	/**
	 * 
	 * @return
	 */
	double getX();
	/**
	 * 
	 * @return
	 */
	float getXf();
	/**
	 * 
	 * @return
	 */
	int getXi();
	/**
	 * 
	 * @return
	 */
	double getY();
	/**
	 * 
	 * @return
	 */
	float getYf();
	/**
	 * 
	 * @return
	 */
	int getYi();
	/**
	 * 
	 * @return
	 */
	Vec newInstance();
	
}
